package controller;

import java.io.IOException;
import java.io.Serializable;
import java.net.Inet4Address;
import java.net.UnknownHostException;
import java.util.Iterator;

import threads.ReceptorDadosServidor;

import mensagens.Mensagem;
import model.Jogador;
import model.Jogadores;

import comunicacao.Comunicacao;
import comunicacao.ConstantesComunicacao;

public class ControladorComunicacaoServidor extends ControladorComunicacao implements Serializable  {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5123221002740635513L;	
	
	public ControladorComunicacaoServidor() throws UnknownHostException{
		super("", Inet4Address.getLocalHost().getHostAddress().toString());		
	}
	
	public void iniciarConexao() throws IOException{
		ReceptorDadosServidor receptor = new ReceptorDadosServidor(ConstantesComunicacao.PORTA);		
		this.setConexao(new Comunicacao(ConstantesComunicacao.PORTA, receptor));
	}
	
	public void enviarMensagem(Mensagem mensagem, String ipdestino) throws UnknownHostException, IOException{
		this.getConexao().enviarMensagem(mensagem, ipdestino);
	}
	
	public void enviarMensagemParaTodos(Mensagem mensagem, Jogadores listaJogadores ) throws UnknownHostException, IOException{
		Iterator<Jogador> i = listaJogadores.getJogadoresIterator();
		while(i.hasNext()){
			Jogador jogador = i.next();
			enviarMensagem(mensagem, jogador.getIp());			
		}
	}
	
	
}
